package com.xzq.erp.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.xzq.erp.domain.dto.ComplaintReplyDTO;
import com.xzq.erp.domain.dto.PageDTO;
import com.xzq.erp.domain.po.ComplaintReply;
import com.xzq.erp.domain.query.ComplaintReplyPageQuery;
import com.xzq.erp.domain.vo.ComplaintReplyVO;

import java.util.List;

/**
 * <p>
 * 投诉回复表 服务类
 * </p>
 *
 * @author xzq
 * @since 2025-05-13
 */
public interface IComplaintReplyService extends IService<ComplaintReply> {

    /**
     * 查询投诉回复列表
     *
     * @param query 查询条件
     * @return 分页结果
     */
    PageDTO<ComplaintReplyVO> getComplaintReplyList(ComplaintReplyPageQuery query);

    /**
     * 根据售后服务ID查询回复列表
     *
     * @param afterSalesId 售后服务ID
     * @return 回复列表
     */
    List<ComplaintReplyVO> getReplyListByAfterSalesId(Long afterSalesId);

    /**
     * 添加投诉回复
     *
     * @param replyDTO 回复信息
     */
    void addComplaintReply(ComplaintReplyDTO replyDTO);

    /**
     * 更新投诉回复
     *
     * @param replyDTO 回复信息
     */
    void updateComplaintReply(ComplaintReplyDTO replyDTO);

    /**
     * 删除投诉回复
     *
     * @param id 回复ID
     */
    void deleteComplaintReply(Long id);

    /**
     * 提交满意度评价
     *
     * @param id 回复ID
     * @param rating 满意度评分(1-5分)
     */
    void submitSatisfactionRating(Long id, Integer rating);

    /**
     * 获取所有投诉回复
     * @return
     */
    List<ComplaintReplyVO> getAllComplaintReplies();

}
